package com.cxc.adapter;

/**
 *適配器模式：是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式，它结合了两个独立接口的功能
 * 框架场景举例：
 * SpringMVC 中适配器HandlerAdatper ，HandlerAdatper根据Handle规则执行不同的Handler。
 * 实现过程：DispatcherServlet根据HandlerMapping返回的handler，向HandlerAdatper发起请求，处理Handler。
 * HandlerAdapter根据规则找到对应的Handler并让其执⾏，执⾏完毕后Handler会向HandlerAdapter返回⼀个 ModelAndView，
 * 最后由HandlerAdapter向DispatchServelet返回⼀个ModelAndView。
 * 实现意义：
 * HandlerAdatper使得Handler的扩展变得容易，只需要增加⼀个新的Handler和⼀个对应的HandlerAdapter即可。 因此Spring定义了⼀个适配接⼝，使得每⼀种Controller有⼀种对应的适配器实现类，让适配器代替controller执⾏相应的⽅ 法。这样在扩展Controller时，
 * 只需要增加⼀个适配器类就完成了SpringMVC的扩展了。
 */
public class Client {

    public void test(Target t){
        t.handleReq();
    }
    public static void main(String[] args) {
        Client  c =  new Client();
        Adaptee  a = new Adaptee();
        Target adapter = new Adapter(a);
        c.test(adapter);
    }
}
